package com.proposition.user.service;

import com.baomidou.mybatisplus.service.IService;
import com.proposition.commons.model.Role;
import com.proposition.commons.model.User;

import java.util.List;
import java.util.Map;


/**
 * 用户接口
 * @author 杨凯
 */
public interface UserService extends IService<User>{

	/**
	 * 通过用户名称获取用户信息
	 *
	 * @param userName
	 *            用户名
	 * @return
	 */
	User findByName(String userName);

	/**
	 * 根据Id 获取用户信息
	 * @param userId
	 * @return
	 */
	User findById(String userId);

	/**
	 * 获取用户角色和对应权限
	 *
	 * @param userName
	 * @return
	 */
	Map<String, Object> listAuthByUserName(String userName);

	/**
	 * 获取用户列表
	 *
	 * @return
	 */
	List<User> findUserList();

	/**
	 * 获取角色列表
	 *
	 * @return
	 */
	List<Role> findRoleList();

	/**
	 * 添加用户
	 *
	 * @param user
	 * @return
	 */
	boolean addUser(User user);

	/**
	 * 判断用户名是否存在
	 *
	 * @param userName
	 * @return
	 */
	boolean checkUserExist(String userName);

	/**
	 * 修改用户资料
	 * @param userId
	 * @param realName
	 * @param password
	 * @param roleId
	 * @param telephone
	 * @return
	 */
	boolean updateUserInfo(String userId, String realName, String password, String roleId, String telephone);

	/**
	 * 删除用户  --此删除为假删除
	 *
	 * @param userId
	 * @return
	 */
	boolean deleteUserById(String userId);


	/***
	 * 修改用户密码
	 *
	 * @param userId
	 *            用户Id
	 * @param newPassword
	 *            新密码
	 * @return
	 */
	boolean changePassword(String userId, String newPassword);


}
